/* SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright(c) 2022 Intel Corporation. All rights reserved.
 *
 */

/* Twiddle factors in Q1.15 format */

#ifndef __INCLUDE_TWIDDLE_16_H__
#define __INCLUDE_TWIDDLE_16_H__

#include <stdint.h>

#define FFT_SIZE_MAX	1024

/* in Q1.15, generated from cos(i * 2 * pi / FFT_SIZE_MAX) */
const int16_t twiddle_real_16[FFT_SIZE_MAX] = {
	32767,
	32767,
	32766,
	32762,
	32758,
	32753,
	32746,
	32738,
	32729,
	32718,
	32706,
	32693,
	32679,
	32664,
	32647,
	32629,
	32610,
	32590,
	32568,
	32546,
	32522,
	32496,
	32470,
	32442,
	32413,
	32383,
	32352,
	32319,
	32286,
	32251,
	32214,
	32177,
	32138,
	32099,
	32058,
	32015,
	31972,
	31927,
	31881,
	31834,
	31786,
	31737,
	31686,
	31634,
	31581,
	31527,
	31471,
	31415,
	31357,
	31298,
	31238,
	31177,
	31114,
	31050,
	30986,
	30920,
	30853,
	30784,
	30715,
	30644,
	30572,
	30499,
	30425,
	30350,
	30274,
	30196,
	30118,
	30038,
	29957,
	29875,
	29792,
	29707,
	29622,
	29535,
	29448,
	29359,
	29269,
	29178,
	29086,
	28993,
	28899,
	28803,
	28707,
	28610,
	28511,
	28411,
	28311,
	28209,
	28106,
	28002,
	27897,
	27791,
	27684,
	27576,
	27467,
	27357,
	27246,
	27133,
	27020,
	26906,
	26791,
	26674,
	26557,
	26439,
	26320,
	26199,
	26078,
	25956,
	25833,
	25708,
	25583,
	25457,
	25330,
	25202,
	25073,
	24943,
	24812,
	24680,
	24548,
	24414,
	24279,
	24144,
	24008,
	23870,
	23732,
	23593,
	23453,
	23312,
	23170,
	23028,
	22884,
	22740,
	22595,
	22449,
	22302,
	22154,
	22006,
	21856,
	21706,
	21555,
	21403,
	21251,
	21097,
	20943,
	20788,
	20632,
	20475,
	20318,
	20160,
	20001,
	19841,
	19681,
	19520,
	19358,
	19195,
	19032,
	18868,
	18703,
	18538,
	18372,
	18205,
	18037,
	17869,
	17700,
	17531,
	17361,
	17190,
	17018,
	16846,
	16673,
	16500,
	16326,
	16151,
	15976,
	15800,
	15624,
	15447,
	15269,
	15091,
	14912,
	14733,
	14553,
	14373,
	14192,
	14010,
	13828,
	13646,
	13463,
	13279,
	13095,
	12910,
	12725,
	12540,
	12354,
	12167,
	11980,
	11793,
	11605,
	11417,
	11228,
	11039,
	10850,
	10660,
	10469,
	10279,
	10088,
	9896,
	9704,
	9512,
	9319,
	9127,
	8933,
	8740,
	8546,
	8351,
	8157,
	7962,
	7767,
	7571,
	7376,
	7180,
	6983,
	6787,
	6590,
	6393,
	6195,
	5998,
	5800,
	5602,
	5404,
	5205,
	5007,
	4808,
	4609,
	4410,
	4211,
	4011,
	3812,
	3612,
	3412,
	3212,
	3012,
	2811,
	2611,
	2411,
	2210,
	2009,
	1809,
	1608,
	1407,
	1206,
	1005,
	804,
	603,
	402,
	201,
	0,
	-201,
	-402,
	-603,
	-804,
	-1005,
	-1206,
	-1407,
	-1608,
	-1809,
	-2009,
	-2210,
	-2411,
	-2611,
	-2811,
	-3012,
	-3212,
	-3412,
	-3612,
	-3812,
	-4011,
	-4211,
	-4410,
	-4609,
	-4808,
	-5007,
	-5205,
	-5404,
	-5602,
	-5800,
	-5998,
	-6195,
	-6393,
	-6590,
	-6787,
	-6983,
	-7180,
	-7376,
	-7571,
	-7767,
	-7962,
	-8157,
	-8351,
	-8546,
	-8740,
	-8933,
	-9127,
	-9319,
	-9512,
	-9704,
	-9896,
	-10088,
	-10279,
	-10469,
	-10660,
	-10850,
	-11039,
	-11228,
	-11417,
	-11605,
	-11793,
	-11980,
	-12167,
	-12354,
	-12540,
	-12725,
	-12910,
	-13095,
	-13279,
	-13463,
	-13646,
	-13828,
	-14010,
	-14192,
	-14373,
	-14553,
	-14733,
	-14912,
	-15091,
	-15269,
	-15447,
	-15624,
	-15800,
	-15976,
	-16151,
	-16326,
	-16500,
	-16673,
	-16846,
	-17018,
	-17190,
	-17361,
	-17531,
	-17700,
	-17869,
	-18037,
	-18205,
	-18372,
	-18538,
	-18703,
	-18868,
	-19032,
	-19195,
	-19358,
	-19520,
	-19681,
	-19841,
	-20001,
	-20160,
	-20318,
	-20475,
	-20632,
	-20788,
	-20943,
	-21097,
	-21251,
	-21403,
	-21555,
	-21706,
	-21856,
	-22006,
	-22154,
	-22302,
	-22449,
	-22595,
	-22740,
	-22884,
	-23028,
	-23170,
	-23312,
	-23453,
	-23593,
	-23732,
	-23870,
	-24008,
	-24144,
	-24279,
	-24414,
	-24548,
	-24680,
	-24812,
	-24943,
	-25073,
	-25202,
	-25330,
	-25457,
	-25583,
	-25708,
	-25833,
	-25956,
	-26078,
	-26199,
	-26320,
	-26439,
	-26557,
	-26674,
	-26791,
	-26906,
	-27020,
	-27133,
	-27246,
	-27357,
	-27467,
	-27576,
	-27684,
	-27791,
	-27897,
	-28002,
	-28106,
	-28209,
	-28311,
	-28411,
	-28511,
	-28610,
	-28707,
	-28803,
	-28899,
	-28993,
	-29086,
	-29178,
	-29269,
	-29359,
	-29448,
	-29535,
	-29622,
	-29707,
	-29792,
	-29875,
	-29957,
	-30038,
	-30118,
	-30196,
	-30274,
	-30350,
	-30425,
	-30499,
	-30572,
	-30644,
	-30715,
	-30784,
	-30853,
	-30920,
	-30986,
	-31050,
	-31114,
	-31177,
	-31238,
	-31298,
	-31357,
	-31415,
	-31471,
	-31527,
	-31581,
	-31634,
	-31686,
	-31737,
	-31786,
	-31834,
	-31881,
	-31927,
	-31972,
	-32015,
	-32058,
	-32099,
	-32138,
	-32177,
	-32214,
	-32251,
	-32286,
	-32319,
	-32352,
	-32383,
	-32413,
	-32442,
	-32470,
	-32496,
	-32522,
	-32546,
	-32568,
	-32590,
	-32610,
	-32629,
	-32647,
	-32664,
	-32679,
	-32693,
	-32706,
	-32718,
	-32729,
	-32738,
	-32746,
	-32753,
	-32758,
	-32762,
	-32766,
	-32767,
	-32767,
	-32767,
	-32766,
	-32762,
	-32758,
	-32753,
	-32746,
	-32738,
	-32729,
	-32718,
	-32706,
	-32693,
	-32679,
	-32664,
	-32647,
	-32629,
	-32610,
	-32590,
	-32568,
	-32546,
	-32522,
	-32496,
	-32470,
	-32442,
	-32413,
	-32383,
	-32352,
	-32319,
	-32286,
	-32251,
	-32214,
	-32177,
	-32138,
	-32099,
	-32058,
	-32015,
	-31972,
	-31927,
	-31881,
	-31834,
	-31786,
	-31737,
	-31686,
	-31634,
	-31581,
	-31527,
	-31471,
	-31415,
	-31357,
	-31298,
	-31238,
	-31177,
	-31114,
	-31050,
	-30986,
	-30920,
	-30853,
	-30784,
	-30715,
	-30644,
	-30572,
	-30499,
	-30425,
	-30350,
	-30274,
	-30196,
	-30118,
	-30038,
	-29957,
	-29875,
	-29792,
	-29707,
	-29622,
	-29535,
	-29448,
	-29359,
	-29269,
	-29178,
	-29086,
	-28993,
	-28899,
	-28803,
	-28707,
	-28610,
	-28511,
	-28411,
	-28311,
	-28209,
	-28106,
	-28002,
	-27897,
	-27791,
	-27684,
	-27576,
	-27467,
	-27357,
	-27246,
	-27133,
	-27020,
	-26906,
	-26791,
	-26674,
	-26557,
	-26439,
	-26320,
	-26199,
	-26078,
	-25956,
	-25833,
	-25708,
	-25583,
	-25457,
	-25330,
	-25202,
	-25073,
	-24943,
	-24812,
	-24680,
	-24548,
	-24414,
	-24279,
	-24144,
	-24008,
	-23870,
	-23732,
	-23593,
	-23453,
	-23312,
	-23170,
	-23028,
	-22884,
	-22740,
	-22595,
	-22449,
	-22302,
	-22154,
	-22006,
	-21856,
	-21706,
	-21555,
	-21403,
	-21251,
	-21097,
	-20943,
	-20788,
	-20632,
	-20475,
	-20318,
	-20160,
	-20001,
	-19841,
	-19681,
	-19520,
	-19358,
	-19195,
	-19032,
	-18868,
	-18703,
	-18538,
	-18372,
	-18205,
	-18037,
	-17869,
	-17700,
	-17531,
	-17361,
	-17190,
	-17018,
	-16846,
	-16673,
	-16500,
	-16326,
	-16151,
	-15976,
	-15800,
	-15624,
	-15447,
	-15269,
	-15091,
	-14912,
	-14733,
	-14553,
	-14373,
	-14192,
	-14010,
	-13828,
	-13646,
	-13463,
	-13279,
	-13095,
	-12910,
	-12725,
	-12540,
	-12354,
	-12167,
	-11980,
	-11793,
	-11605,
	-11417,
	-11228,
	-11039,
	-10850,
	-10660,
	-10469,
	-10279,
	-10088,
	-9896,
	-9704,
	-9512,
	-9319,
	-9127,
	-8933,
	-8740,
	-8546,
	-8351,
	-8157,
	-7962,
	-7767,
	-7571,
	-7376,
	-7180,
	-6983,
	-6787,
	-6590,
	-6393,
	-6195,
	-5998,
	-5800,
	-5602,
	-5404,
	-5205,
	-5007,
	-4808,
	-4609,
	-4410,
	-4211,
	-4011,
	-3812,
	-3612,
	-3412,
	-3212,
	-3012,
	-2811,
	-2611,
	-2411,
	-2210,
	-2009,
	-1809,
	-1608,
	-1407,
	-1206,
	-1005,
	-804,
	-603,
	-402,
	-201,
	0,
	201,
	402,
	603,
	804,
	1005,
	1206,
	1407,
	1608,
	1809,
	2009,
	2210,
	2411,
	2611,
	2811,
	3012,
	3212,
	3412,
	3612,
	3812,
	4011,
	4211,
	4410,
	4609,
	4808,
	5007,
	5205,
	5404,
	5602,
	5800,
	5998,
	6195,
	6393,
	6590,
	6787,
	6983,
	7180,
	7376,
	7571,
	7767,
	7962,
	8157,
	8351,
	8546,
	8740,
	8933,
	9127,
	9319,
	9512,
	9704,
	9896,
	10088,
	10279,
	10469,
	10660,
	10850,
	11039,
	11228,
	11417,
	11605,
	11793,
	11980,
	12167,
	12354,
	12540,
	12725,
	12910,
	13095,
	13279,
	13463,
	13646,
	13828,
	14010,
	14192,
	14373,
	14553,
	14733,
	14912,
	15091,
	15269,
	15447,
	15624,
	15800,
	15976,
	16151,
	16326,
	16500,
	16673,
	16846,
	17018,
	17190,
	17361,
	17531,
	17700,
	17869,
	18037,
	18205,
	18372,
	18538,
	18703,
	18868,
	19032,
	19195,
	19358,
	19520,
	19681,
	19841,
	20001,
	20160,
	20318,
	20475,
	20632,
	20788,
	20943,
	21097,
	21251,
	21403,
	21555,
	21706,
	21856,
	22006,
	22154,
	22302,
	22449,
	22595,
	22740,
	22884,
	23028,
	23170,
	23312,
	23453,
	23593,
	23732,
	23870,
	24008,
	24144,
	24279,
	24414,
	24548,
	24680,
	24812,
	24943,
	25073,
	25202,
	25330,
	25457,
	25583,
	25708,
	25833,
	25956,
	26078,
	26199,
	26320,
	26439,
	26557,
	26674,
	26791,
	26906,
	27020,
	27133,
	27246,
	27357,
	27467,
	27576,
	27684,
	27791,
	27897,
	28002,
	28106,
	28209,
	28311,
	28411,
	28511,
	28610,
	28707,
	28803,
	28899,
	28993,
	29086,
	29178,
	29269,
	29359,
	29448,
	29535,
	29622,
	29707,
	29792,
	29875,
	29957,
	30038,
	30118,
	30196,
	30274,
	30350,
	30425,
	30499,
	30572,
	30644,
	30715,
	30784,
	30853,
	30920,
	30986,
	31050,
	31114,
	31177,
	31238,
	31298,
	31357,
	31415,
	31471,
	31527,
	31581,
	31634,
	31686,
	31737,
	31786,
	31834,
	31881,
	31927,
	31972,
	32015,
	32058,
	32099,
	32138,
	32177,
	32214,
	32251,
	32286,
	32319,
	32352,
	32383,
	32413,
	32442,
	32470,
	32496,
	32522,
	32546,
	32568,
	32590,
	32610,
	32629,
	32647,
	32664,
	32679,
	32693,
	32706,
	32718,
	32729,
	32738,
	32746,
	32753,
	32758,
	32762,
	32766,
	32767,
};

/* in Q1.15, generated from sin(i * 2 * pi / FFT_SIZE_MAX) */
const int16_t twiddle_imag_16[FFT_SIZE_MAX] = {
	0,
	-201,
	-402,
	-603,
	-804,
	-1005,
	-1206,
	-1407,
	-1608,
	-1809,
	-2009,
	-2210,
	-2411,
	-2611,
	-2811,
	-3012,
	-3212,
	-3412,
	-3612,
	-3812,
	-4011,
	-4211,
	-4410,
	-4609,
	-4808,
	-5007,
	-5205,
	-5404,
	-5602,
	-5800,
	-5998,
	-6195,
	-6393,
	-6590,
	-6787,
	-6983,
	-7180,
	-7376,
	-7571,
	-7767,
	-7962,
	-8157,
	-8351,
	-8546,
	-8740,
	-8933,
	-9127,
	-9319,
	-9512,
	-9704,
	-9896,
	-10088,
	-10279,
	-10469,
	-10660,
	-10850,
	-11039,
	-11228,
	-11417,
	-11605,
	-11793,
	-11980,
	-12167,
	-12354,
	-12540,
	-12725,
	-12910,
	-13095,
	-13279,
	-13463,
	-13646,
	-13828,
	-14010,
	-14192,
	-14373,
	-14553,
	-14733,
	-14912,
	-15091,
	-15269,
	-15447,
	-15624,
	-15800,
	-15976,
	-16151,
	-16326,
	-16500,
	-16673,
	-16846,
	-17018,
	-17190,
	-17361,
	-17531,
	-17700,
	-17869,
	-18037,
	-18205,
	-18372,
	-18538,
	-18703,
	-18868,
	-19032,
	-19195,
	-19358,
	-19520,
	-19681,
	-19841,
	-20001,
	-20160,
	-20318,
	-20475,
	-20632,
	-20788,
	-20943,
	-21097,
	-21251,
	-21403,
	-21555,
	-21706,
	-21856,
	-22006,
	-22154,
	-22302,
	-22449,
	-22595,
	-22740,
	-22884,
	-23028,
	-23170,
	-23312,
	-23453,
	-23593,
	-23732,
	-23870,
	-24008,
	-24144,
	-24279,
	-24414,
	-24548,
	-24680,
	-24812,
	-24943,
	-25073,
	-25202,
	-25330,
	-25457,
	-25583,
	-25708,
	-25833,
	-25956,
	-26078,
	-26199,
	-26320,
	-26439,
	-26557,
	-26674,
	-26791,
	-26906,
	-27020,
	-27133,
	-27246,
	-27357,
	-27467,
	-27576,
	-27684,
	-27791,
	-27897,
	-28002,
	-28106,
	-28209,
	-28311,
	-28411,
	-28511,
	-28610,
	-28707,
	-28803,
	-28899,
	-28993,
	-29086,
	-29178,
	-29269,
	-29359,
	-29448,
	-29535,
	-29622,
	-29707,
	-29792,
	-29875,
	-29957,
	-30038,
	-30118,
	-30196,
	-30274,
	-30350,
	-30425,
	-30499,
	-30572,
	-30644,
	-30715,
	-30784,
	-30853,
	-30920,
	-30986,
	-31050,
	-31114,
	-31177,
	-31238,
	-31298,
	-31357,
	-31415,
	-31471,
	-31527,
	-31581,
	-31634,
	-31686,
	-31737,
	-31786,
	-31834,
	-31881,
	-31927,
	-31972,
	-32015,
	-32058,
	-32099,
	-32138,
	-32177,
	-32214,
	-32251,
	-32286,
	-32319,
	-32352,
	-32383,
	-32413,
	-32442,
	-32470,
	-32496,
	-32522,
	-32546,
	-32568,
	-32590,
	-32610,
	-32629,
	-32647,
	-32664,
	-32679,
	-32693,
	-32706,
	-32718,
	-32729,
	-32738,
	-32746,
	-32753,
	-32758,
	-32762,
	-32766,
	-32767,
	-32767,
	-32767,
	-32766,
	-32762,
	-32758,
	-32753,
	-32746,
	-32738,
	-32729,
	-32718,
	-32706,
	-32693,
	-32679,
	-32664,
	-32647,
	-32629,
	-32610,
	-32590,
	-32568,
	-32546,
	-32522,
	-32496,
	-32470,
	-32442,
	-32413,
	-32383,
	-32352,
	-32319,
	-32286,
	-32251,
	-32214,
	-32177,
	-32138,
	-32099,
	-32058,
	-32015,
	-31972,
	-31927,
	-31881,
	-31834,
	-31786,
	-31737,
	-31686,
	-31634,
	-31581,
	-31527,
	-31471,
	-31415,
	-31357,
	-31298,
	-31238,
	-31177,
	-31114,
	-31050,
	-30986,
	-30920,
	-30853,
	-30784,
	-30715,
	-30644,
	-30572,
	-30499,
	-30425,
	-30350,
	-30274,
	-30196,
	-30118,
	-30038,
	-29957,
	-29875,
	-29792,
	-29707,
	-29622,
	-29535,
	-29448,
	-29359,
	-29269,
	-29178,
	-29086,
	-28993,
	-28899,
	-28803,
	-28707,
	-28610,
	-28511,
	-28411,
	-28311,
	-28209,
	-28106,
	-28002,
	-27897,
	-27791,
	-27684,
	-27576,
	-27467,
	-27357,
	-27246,
	-27133,
	-27020,
	-26906,
	-26791,
	-26674,
	-26557,
	-26439,
	-26320,
	-26199,
	-26078,
	-25956,
	-25833,
	-25708,
	-25583,
	-25457,
	-25330,
	-25202,
	-25073,
	-24943,
	-24812,
	-24680,
	-24548,
	-24414,
	-24279,
	-24144,
	-24008,
	-23870,
	-23732,
	-23593,
	-23453,
	-23312,
	-23170,
	-23028,
	-22884,
	-22740,
	-22595,
	-22449,
	-22302,
	-22154,
	-22006,
	-21856,
	-21706,
	-21555,
	-21403,
	-21251,
	-21097,
	-20943,
	-20788,
	-20632,
	-20475,
	-20318,
	-20160,
	-20001,
	-19841,
	-19681,
	-19520,
	-19358,
	-19195,
	-19032,
	-18868,
	-18703,
	-18538,
	-18372,
	-18205,
	-18037,
	-17869,
	-17700,
	-17531,
	-17361,
	-17190,
	-17018,
	-16846,
	-16673,
	-16500,
	-16326,
	-16151,
	-15976,
	-15800,
	-15624,
	-15447,
	-15269,
	-15091,
	-14912,
	-14733,
	-14553,
	-14373,
	-14192,
	-14010,
	-13828,
	-13646,
	-13463,
	-13279,
	-13095,
	-12910,
	-12725,
	-12540,
	-12354,
	-12167,
	-11980,
	-11793,
	-11605,
	-11417,
	-11228,
	-11039,
	-10850,
	-10660,
	-10469,
	-10279,
	-10088,
	-9896,
	-9704,
	-9512,
	-9319,
	-9127,
	-8933,
	-8740,
	-8546,
	-8351,
	-8157,
	-7962,
	-7767,
	-7571,
	-7376,
	-7180,
	-6983,
	-6787,
	-6590,
	-6393,
	-6195,
	-5998,
	-5800,
	-5602,
	-5404,
	-5205,
	-5007,
	-4808,
	-4609,
	-4410,
	-4211,
	-4011,
	-3812,
	-3612,
	-3412,
	-3212,
	-3012,
	-2811,
	-2611,
	-2411,
	-2210,
	-2009,
	-1809,
	-1608,
	-1407,
	-1206,
	-1005,
	-804,
	-603,
	-402,
	-201,
	0,
	201,
	402,
	603,
	804,
	1005,
	1206,
	1407,
	1608,
	1809,
	2009,
	2210,
	2411,
	2611,
	2811,
	3012,
	3212,
	3412,
	3612,
	3812,
	4011,
	4211,
	4410,
	4609,
	4808,
	5007,
	5205,
	5404,
	5602,
	5800,
	5998,
	6195,
	6393,
	6590,
	6787,
	6983,
	7180,
	7376,
	7571,
	7767,
	7962,
	8157,
	8351,
	8546,
	8740,
	8933,
	9127,
	9319,
	9512,
	9704,
	9896,
	10088,
	10279,
	10469,
	10660,
	10850,
	11039,
	11228,
	11417,
	11605,
	11793,
	11980,
	12167,
	12354,
	12540,
	12725,
	12910,
	13095,
	13279,
	13463,
	13646,
	13828,
	14010,
	14192,
	14373,
	14553,
	14733,
	14912,
	15091,
	15269,
	15447,
	15624,
	15800,
	15976,
	16151,
	16326,
	16500,
	16673,
	16846,
	17018,
	17190,
	17361,
	17531,
	17700,
	17869,
	18037,
	18205,
	18372,
	18538,
	18703,
	18868,
	19032,
	19195,
	19358,
	19520,
	19681,
	19841,
	20001,
	20160,
	20318,
	20475,
	20632,
	20788,
	20943,
	21097,
	21251,
	21403,
	21555,
	21706,
	21856,
	22006,
	22154,
	22302,
	22449,
	22595,
	22740,
	22884,
	23028,
	23170,
	23312,
	23453,
	23593,
	23732,
	23870,
	24008,
	24144,
	24279,
	24414,
	24548,
	24680,
	24812,
	24943,
	25073,
	25202,
	25330,
	25457,
	25583,
	25708,
	25833,
	25956,
	26078,
	26199,
	26320,
	26439,
	26557,
	26674,
	26791,
	26906,
	27020,
	27133,
	27246,
	27357,
	27467,
	27576,
	27684,
	27791,
	27897,
	28002,
	28106,
	28209,
	28311,
	28411,
	28511,
	28610,
	28707,
	28803,
	28899,
	28993,
	29086,
	29178,
	29269,
	29359,
	29448,
	29535,
	29622,
	29707,
	29792,
	29875,
	29957,
	30038,
	30118,
	30196,
	30274,
	30350,
	30425,
	30499,
	30572,
	30644,
	30715,
	30784,
	30853,
	30920,
	30986,
	31050,
	31114,
	31177,
	31238,
	31298,
	31357,
	31415,
	31471,
	31527,
	31581,
	31634,
	31686,
	31737,
	31786,
	31834,
	31881,
	31927,
	31972,
	32015,
	32058,
	32099,
	32138,
	32177,
	32214,
	32251,
	32286,
	32319,
	32352,
	32383,
	32413,
	32442,
	32470,
	32496,
	32522,
	32546,
	32568,
	32590,
	32610,
	32629,
	32647,
	32664,
	32679,
	32693,
	32706,
	32718,
	32729,
	32738,
	32746,
	32753,
	32758,
	32762,
	32766,
	32767,
	32767,
	32767,
	32766,
	32762,
	32758,
	32753,
	32746,
	32738,
	32729,
	32718,
	32706,
	32693,
	32679,
	32664,
	32647,
	32629,
	32610,
	32590,
	32568,
	32546,
	32522,
	32496,
	32470,
	32442,
	32413,
	32383,
	32352,
	32319,
	32286,
	32251,
	32214,
	32177,
	32138,
	32099,
	32058,
	32015,
	31972,
	31927,
	31881,
	31834,
	31786,
	31737,
	31686,
	31634,
	31581,
	31527,
	31471,
	31415,
	31357,
	31298,
	31238,
	31177,
	31114,
	31050,
	30986,
	30920,
	30853,
	30784,
	30715,
	30644,
	30572,
	30499,
	30425,
	30350,
	30274,
	30196,
	30118,
	30038,
	29957,
	29875,
	29792,
	29707,
	29622,
	29535,
	29448,
	29359,
	29269,
	29178,
	29086,
	28993,
	28899,
	28803,
	28707,
	28610,
	28511,
	28411,
	28311,
	28209,
	28106,
	28002,
	27897,
	27791,
	27684,
	27576,
	27467,
	27357,
	27246,
	27133,
	27020,
	26906,
	26791,
	26674,
	26557,
	26439,
	26320,
	26199,
	26078,
	25956,
	25833,
	25708,
	25583,
	25457,
	25330,
	25202,
	25073,
	24943,
	24812,
	24680,
	24548,
	24414,
	24279,
	24144,
	24008,
	23870,
	23732,
	23593,
	23453,
	23312,
	23170,
	23028,
	22884,
	22740,
	22595,
	22449,
	22302,
	22154,
	22006,
	21856,
	21706,
	21555,
	21403,
	21251,
	21097,
	20943,
	20788,
	20632,
	20475,
	20318,
	20160,
	20001,
	19841,
	19681,
	19520,
	19358,
	19195,
	19032,
	18868,
	18703,
	18538,
	18372,
	18205,
	18037,
	17869,
	17700,
	17531,
	17361,
	17190,
	17018,
	16846,
	16673,
	16500,
	16326,
	16151,
	15976,
	15800,
	15624,
	15447,
	15269,
	15091,
	14912,
	14733,
	14553,
	14373,
	14192,
	14010,
	13828,
	13646,
	13463,
	13279,
	13095,
	12910,
	12725,
	12540,
	12354,
	12167,
	11980,
	11793,
	11605,
	11417,
	11228,
	11039,
	10850,
	10660,
	10469,
	10279,
	10088,
	9896,
	9704,
	9512,
	9319,
	9127,
	8933,
	8740,
	8546,
	8351,
	8157,
	7962,
	7767,
	7571,
	7376,
	7180,
	6983,
	6787,
	6590,
	6393,
	6195,
	5998,
	5800,
	5602,
	5404,
	5205,
	5007,
	4808,
	4609,
	4410,
	4211,
	4011,
	3812,
	3612,
	3412,
	3212,
	3012,
	2811,
	2611,
	2411,
	2210,
	2009,
	1809,
	1608,
	1407,
	1206,
	1005,
	804,
	603,
	402,
	201,
};

#endif
